import cv2
import numpy as np


# 创建一个叫nothing 的函数，用来传递pass 值
def nothing(x):
    pass


# 创建一个黑色背景和窗口
img = np.zeros((300, 512, 3), np.uint8)
cv2.namedWindow("image")

# 创建轨迹栏，颜色分别是红，绿，蓝
cv2.createTrackbar("R", "image", 0, 255, nothing)  # 举第一个例子
# 参数分别是红色，窗口名字，最小值，最大值，需要执行的函数
cv2.createTrackbar("G", "image", 0, 255, nothing)
cv2.createTrackbar("B", "image", 0, 255, nothing)

# 创建一个开关；开关为off 状态，调颜色也没用，只是黑色
switch = "0 : OFF \n1 : ON"
cv2.createTrackbar(switch, "image", 0, 1, nothing)

while 1:
    cv2.imshow("image", img)
    k = cv2.waitKey(1) & 0xFF
    if k == 27:
        break

    # 得到4个轨迹栏中移动键的当前位置
    r = cv2.getTrackbarPos("R", "image")
    g = cv2.getTrackbarPos("G", "image")
    b = cv2.getTrackbarPos("B", "image")
    s = cv2.getTrackbarPos(switch, "image")

    # 如果开关是关的
    if s == 0:
        # 背景图片就是黑色
        img[:] = 0
    # 如果开关开了
    else:
        # 背景图片颜色就绚丽了，根据当时b,g,r的状态上色
        img[:] = [b, g, r]

cv2.destroyAllWindows()
